package org.springblade.modules.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.admin.dto.feishu.FeiShuFieldsDTO;
import org.springblade.modules.admin.dto.plan.PlanContentExcelSearchDTO;
import org.springblade.modules.admin.entity.UserSignDetail;
import org.springblade.modules.admin.vo.UserSignDetailPageVo;
import org.springblade.modules.admin.vo.feishu.LarkElevatorDailyAttendanceStaticVO;
import org.springblade.modules.admin.vo.feishu.LarkUserSignDetailVO;

import java.util.Date;
import java.util.List;

public interface UserSignDetailService extends BaseService<UserSignDetail> {

	/**
	 * 分页信息
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param signType 签到类型
	 * @param types 状态
	 * @param page 分页
	 * @param tenantId 租户
	 * @param userName 名称
	 * @return 数据集
	 */
    IPage<UserSignDetailPageVo> listUserSignDetail(String startTime, String endTime, Integer signType, String types, IPage<UserSignDetailPageVo> page, String tenantId ,String userName);

	/**
	 * excel 下载
	 *
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param signType 签到类型
	 * @param types 状态
	 * @param tenantId 租户
	 * @param userName 名称
	 * @return 数据集
	 */
	void downExcelDetail(String startTime, String endTime, Integer signType,String types, List<List<String>> rows, String tenantId,String userName);

	/**
	 * 获取考勤数据
	 * @param planContentExcelSearchDTO
	 * @return 数据集
	 */
	List<UserSignDetail> getList(PlanContentExcelSearchDTO planContentExcelSearchDTO);

	UserSignDetail getCurDateSign(Long userId);

	/**
	 * 获取飞书考勤数据
	 * @param tenantId 租户
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param userId 用户id
	 * @return 数据集
	 */
    List<LarkUserSignDetailVO> getLarkSignDetailByCondition(String tenantId, Date startTime, Date endTime, Long userId);

    List<LarkElevatorDailyAttendanceStaticVO> getLarkElevatorDailyAttendanceStatic();

	List<LarkElevatorDailyAttendanceStaticVO> getLarkElevatorDailyAttendanceStaticFull();
}

